Data from get_nlcd()

Data source: https://www.mrlc.gov/

Data was retrieved using the FedData library, get_nlcd function. The function returns a RasterLayer of NLCD data cropped to a given template study area. In this project, we pulled the impervious surfaces and tree canopy data to then analyze based on different tracts, blocks in various locations around Virginia.

library(tidyverse)
library(leaflet)
library(sp)
library(viridis)
library(raster)
library(knitr)
library(dplyr)
library(kableExtra)

Charlottesville Region

cville_tracts <- readRDS("Cville_Tree/cville_tracts.RDS")
cville_blkgps <- readRDS("Cville_Tree/cville_blkgps.RDS")
cville_blocks <- readRDS("Cville_Tree/cville_blocks.RDS")

Tracts

cvl_tracts <- read.csv("Cville_Tree/nlcd_tree_cville_tracts.csv")%>%
  dplyr::select(-c(5,7,8))

cvl_tracts <- cvl_tracts[order(cvl_tracts$TRACTCE), ]
  
kable(head(cvl_tracts))%>%
  kable_styling(font_size = 12)
STATEFP COUNTYFP TRACTCE GEOID NAMELSAD tree_can
19 51 540 201 5.154e+10 Census Tract 2.01 32.76820
41 51 540 202 5.154e+10 Census Tract 2.02 11.58013
42 51 540 302 5.154e+10 Census Tract 3.02 25.91021
43 51 540 401 5.154e+10 Census Tract 4.01 34.10494
45 51 540 402 5.154e+10 Census Tract 4.02 22.95314
44 51 540 501 5.154e+10 Census Tract 5.01 34.68436
cville_tracts$tree_can <- cvl_tracts$tree_can


pal <- colorNumeric("plasma", reverse = TRUE, domain = cvl_tracts$tree_can)
cvl_tracts$tree_can <- as.numeric(cvl_tracts$tree_can)
cville_tracts$COUNTYFP <- as.numeric(cville_tracts$COUNTYFP)
m <- leaflet()%>%
  addTiles()%>%
  addPolygons(data = cville_tracts,
              fillColor = ~pal(tree_can),
              weight = 1,
              opacity = 1,
              color = "white",
              fillOpacity = 0.6,
              highlight = highlightOptions(weight = 2, fillOpacity = 0.8, bringToFront = T),
              popup = paste0("FIPS Code: ", cvl_tracts$GEOID, "<br>",
                             "Tree Canopy: ", cvl_tracts$tree_can,"<br>",
                             "Tract: ", cvl_tracts$NAMELSAD)) %>%
  addLegend("bottomright", pal = pal, values = cvl_tracts$tree_can,
            title = "Tree Canopy", opacity = 0.7)
m

Blockgroups

cvl_blkgps <- read.csv("Cville_Tree/nlcd_tree_cville_blkgps.csv")%>%
  as.data.frame()

cvl_blkgps <- cvl_blkgps[order(cvl_blkgps$TRACTCE), ]

kable(head(cvl_blkgps))%>%
  kable_styling(font_size = 12)
STATEFP COUNTYFP TRACTCE BLKGRPCE GEOID NAMELSAD tree_can
54 51 540 201 3 5.154e+11 Block Group 3 39.102459
55 51 540 201 1 5.154e+11 Block Group 1 43.246032
89 51 540 201 2 5.154e+11 Block Group 2 15.508475
6 51 540 202 2 5.154e+11 Block Group 2 9.651163
92 51 540 202 3 5.154e+11 Block Group 3 18.833333
108 51 540 202 1 5.154e+11 Block Group 1 8.282908
cville_blkgps$tree_can <- cvl_blkgps$tree_can


pal <- colorNumeric("plasma", reverse = TRUE, domain = cvl_blkgps$tree_can)
cvl_blkgps$tree_can <- as.numeric(cvl_blkgps$tree_can)
cville_blkgps$COUNTYFP <- as.numeric(cville_blkgps$COUNTYFP)
m <- leaflet()%>%
  addTiles()%>%
  addPolygons(data = cville_blkgps,
              fillColor = ~pal(tree_can),
              weight = 1,
              opacity = 1,
              color = "white",
              fillOpacity = 0.6,
              highlight = highlightOptions(weight = 2, fillOpacity = 0.8, bringToFront = T),
              popup = paste0("FIPS Code: ", cvl_blkgps$GEOID, "<br>",
                             "Tree Canopy: ", cvl_blkgps$tree_can,"<br>",
                             "Blockgroup: ", cvl_blkgps$NAMELSAD)) %>%
  addLegend("bottomright", pal = pal, values = cvl_blkgps$tree_can,
            title = "Tree Canopy", opacity = 0.7)
m

Blocks

cvl_blocks <- read.csv("Cville_Tree/nlcd_tree_cville_blocks.csv")%>%
  as.data.frame()

kable(head(cvl_blocks))%>%
  kable_styling(font_size = 12)
STATEFP10 COUNTYFP10 TRACTCE10 BLOCKCE10 GEOID10 NAME10 tree_can
51 3 10401 3025 5.100301e+14 Block 3025 74.666667
51 3 10401 3004 5.100301e+14 Block 3004 0.000000
51 3 10401 3005 5.100301e+14 Block 3005 25.907297
51 3 10401 3021 5.100301e+14 Block 3021 46.275294
51 3 10401 3016 5.100301e+14 Block 3016 44.680297
51 3 10401 3019 5.100301e+14 Block 3019 7.082353
# mean_block <- aggregate(cvl_blocks$tree_can, by = list(cvl_blocks$BLOCKCE10), FUN=mean)%>%
  # round(3)

# colnames(mean_block) <- c("Blocks", "Tree_can")

cville_blocks$tree_can <- cvl_blocks$tree_can

pal <- colorNumeric("plasma", reverse = TRUE, domain = cvl_blocks$tree_can)
cvl_blocks$tree_can <- as.numeric(cvl_blocks$tree_can)
cville_blocks$COUNTYFP <- as.numeric(cville_blocks$COUNTYFP)
m <- leaflet()%>%
  addTiles()%>%
  addPolygons(data = cville_blocks,
              fillColor = ~pal(tree_can),
              weight = 1,
              opacity = 1,
              color = "white",
              fillOpacity = 0.6,
              highlight = highlightOptions(weight = 2, fillOpacity = 0.8, bringToFront = T),
              popup = paste0("FIPS Code: ", cvl_blocks$GEOID, "<br>",
                             "Tree Canopy: ", cvl_blocks$tree_can,"<br>",
                             "Block: ", cvl_blocks$NAME10)) %>%
  addLegend("bottomright", pal = pal, values = cvl_blocks$tree_can,
            title = "Tree Canopy", opacity = 0.7)
m

Eastern Shore Region

east_tracts <- readRDS("Easternshore_Tree/eastshore_tracts.RDS")
east_blkgps <- readRDS("Easternshore_Tree/eastshore_blkgps.RDS")
east_blocks <- readRDS("Easternshore_Tree/eastshore_blocks.RDS")

Tracts

eastern_tracts <- read.csv("Easternshore_Tree/nlcd_tree_eastshore_tracts.csv")%>%
  as.data.frame()

kable(head(eastern_tracts))%>%
  kable_styling(font_size = 12)
STATEFP COUNTYFP TRACTCE GEOID NAME NAMELSAD tree_can
51 1 90200 51001090200 902 Census Tract 902 34.5990573
51 1 980200 51001980200 9802 Census Tract 9802 3.4784868
51 1 980100 51001980100 9801 Census Tract 9801 10.7229572
51 1 90400 51001090400 904 Census Tract 904 19.4214221
51 131 990100 51131990100 9901 Census Tract 9901 0.0001823
51 131 930300 51131930300 9303 Census Tract 9303 5.3157668
east_tracts$tree_can <- eastern_tracts$tree_can

pal <- colorNumeric("plasma", reverse = TRUE, domain = eastern_tracts$tree_can)
eastern_tracts$tree_can <- as.numeric(eastern_tracts$tree_can)
east_tracts$COUNTYFP <- as.numeric(east_tracts$COUNTYFP)
m <- leaflet()%>%
  addTiles()%>%
  addPolygons(data = east_tracts,
              fillColor = ~pal(tree_can),
              weight = 1,
              opacity = 1,
              color = "white",
              fillOpacity = 0.6,
              highlight = highlightOptions(weight = 2, fillOpacity = 0.8, bringToFront = T),
              popup = paste0("FIPS Code: ", eastern_tracts$GEOID, "<br>",
                             "Tree Canopy: ", eastern_tracts$tree_can, "<br>",
                             "Tract: ", eastern_tracts$NAMELSAD)) %>%
  addLegend("bottomright", pal = pal, values = eastern_tracts$tree_can,
            title = "Tree Canopy", opacity = 0.7)
m

Blockgroups

eastern_blkgps <- read.csv("Easternshore_Tree/nlcd_tree_eastshore_blkgps.csv")%>%
  as.data.frame()

kable(head(eastern_blkgps))%>%
  kable_styling(font_size = 12)
STATEFP COUNTYFP TRACTCE BLKGRPCE GEOID NAMELSAD tree_can
51 1 990100 0 510019901000 Block Group 0 0.0292864
51 1 90800 2 510010908002 Block Group 2 9.9791408
51 1 90400 4 510010904004 Block Group 4 15.0362333
51 1 90400 3 510010904003 Block Group 3 18.6409378
51 1 90800 3 510010908003 Block Group 3 24.5608307
51 1 90300 1 510010903001 Block Group 1 13.8446008
# cvl_tracts <- cvl_tracts[complete.cases(cvl_tracts),]

east_blkgps$tree_can <- eastern_blkgps$tree_can

pal <- colorNumeric("plasma", reverse = TRUE, domain = eastern_blkgps$tree_can)
eastern_blkgps$tree_can <- as.numeric(eastern_blkgps$tree_can)
east_blkgps$COUNTYFP <- as.numeric(east_blkgps$COUNTYFP)
m <- leaflet()%>%
  addTiles()%>%
  addPolygons(data = east_blkgps,
              fillColor = ~pal(tree_can),
              weight = 1,
              opacity = 1,
              color = "white",
              fillOpacity = 0.6,
              highlight = highlightOptions(weight = 2, fillOpacity = 0.8, bringToFront = T),
              popup = paste0("FIPS Code: ", eastern_blkgps$GEOID, "<br>",
                             "Tree Canopy: ", eastern_blkgps$tree_can, "<br>",
                             "Blockgroup: ", eastern_blkgps$NAMELSAD)) %>%
  addLegend("bottomright", pal = pal, values = eastern_blkgps$tree_can,
            title = "Tree Canopy", opacity = 0.7)
m

Blocks

eastern_blocks <- read.csv("Easternshore_Tree/nlcd_tree_eastshore_blocks.csv")%>%
  as.data.frame()

kable(head(eastern_blocks))%>%
  kable_styling(font_size = 12)
STATEFP10 COUNTYFP10 TRACTCE10 BLOCKCE10 GEOID10 NAME10 tree_can
51 1 90600 4011 5.100109e+14 Block 4011 54.98551
51 1 90600 4023 5.100109e+14 Block 4023 45.93617
51 1 90700 1011 5.100109e+14 Block 1011 35.00000
51 1 90800 2078 5.100109e+14 Block 2078 0.00000
51 1 90800 2079 5.100109e+14 Block 2079 0.00000
51 1 90600 4048 5.100109e+14 Block 4048 0.00000
east_blocks$tree_can <- eastern_blocks$tree_can

pal <- colorNumeric("plasma", reverse = TRUE, domain = eastern_blocks$tree_can)
eastern_blocks$tree_can <- as.numeric(eastern_blocks$tree_can)
east_blocks$COUNTYFP <- as.numeric(east_blocks$COUNTYFP)
m <- leaflet()%>%
  addTiles()%>%
  addPolygons(data = east_blocks,
              fillColor = ~pal(tree_can),
              weight = 1,
              opacity = 1,
              color = "white",
              fillOpacity = 0.6,
              highlight = highlightOptions(weight = 2, fillOpacity = 0.8, bringToFront = T),
              popup = paste0("FIPS Code: ", eastern_blocks$GEOID, "<br>",
                             "Tree Canopy: ", eastern_blocks$tree_can, "<br>",
                             "Blocks: ", eastern_blocks$Tree_can)) %>%
  addLegend("bottomright", pal = pal, values = eastern_blocks$tree_can,
            title = "Tree Canopy", opacity = 0.7)
m